#ifndef __WIZ_DATATYPE_SCALAR_HPP__SHANHAOBO_19800429__
#define __WIZ_DATATYPE_SCALAR_HPP__SHANHAOBO_19800429__

#include "../Base/WizBase.hpp"

namespace Wiz
{
    template <class ElementT1, class ElementT2, class BaseT = ::Wiz::Null::Type>
    struct Scalar :
        ::Wiz::Operators::Arithmetic::Type<ElementT1, ElementT2,
        ::Wiz::Operators::ComparableAll::Type<ElementT1, ElementT2, BaseT>>
    {
        Scalar(ElementT2 const& InEle) : m_Value(InEle)
        {
        }

        ElementT2 m_Value;  
        WIZ_OPERATORS_ARITHMETIC(ElementT1, const ElementT2&, m_Value);
        WIZ_OPERATORS_COMPARABLE_ALL(ElementT1, const ElementT2&, m_Value);
    };
} /// end of namespace Wiz

#endif /*__WIZ_DATATYPE_SCALAR_HPP__SHANHAOBO_19800429__*/
